/* **********************************************************************************
*
* Copyright (c) Microsoft Corporation. All rights reserved.
*
* **********************************************************************************/

using System;
using System.Collections.Generic;
using System.Text;

namespace OfficeOpenXMLInterop
{
    #region Simple Types

    /// <summary>
    /// Preset material types
    /// </summary>
    [Serializable]
    public enum ST_PresetMaterialType
    {
        // These unumeration values map to positions within combo boxes that are used to expose
        //  these options within the UI
        matte = 0,
        plastic = 1,
        metal = 2,
        warmMatte = 3,
        translucentPowder = 4,
        powder = 5,
        dkEdge = 6,
        softEdge = 7,
        clear = 8,
        flat = 9,
        softmetal = 10,
        legacyMatte = 11,
        legacyPlastic = 12,
        legacyMetal = 13,
        legacyWireframe = 14,
    }

    /// <summary>
    /// Preset bevel types
    /// </summary>
    [Serializable]
    public enum ST_BevelPresetType
    {
        // These unumeration values map to positions within combo boxes that are used to expose
        //  these options within the UI
        relaxedInset = 0,
        circle = 1,
        slope = 2,
        cross = 3,
        angle = 4,
        softRound = 5,
        convex = 6,
        coolSlant = 7,
        divot = 8,
        riblet = 9,
        hardEdge = 10,
        artDeco = 11,
    }

    #endregion

    #region Complex Types

    /// <summary>
    /// Flat Text
    /// </summary>
    [Serializable]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = Namespaces.DrawingMLMain)]
    public class CT_FlatText
    {
        public CT_FlatText()
        {
            this.z = ((long)(0));
        }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        [System.ComponentModel.DefaultValueAttribute(typeof(long), "0")]
        public long z;
    }

    /// <summary>
    /// Bevel
    /// </summary>
    [Serializable]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = Namespaces.DrawingMLMain)]
    public class CT_Bevel
    {
        public CT_Bevel()
        {
            this.w = ((long)(76200));
            this.h = ((long)(76200));
            this.prst = ST_BevelPresetType.circle;
        }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        [System.ComponentModel.DefaultValueAttribute(typeof(long), "76200")]
        public long w;

        [System.Xml.Serialization.XmlAttributeAttribute()]
        [System.ComponentModel.DefaultValueAttribute(typeof(long), "76200")]
        public long h;

        [System.Xml.Serialization.XmlAttributeAttribute()]
        [System.ComponentModel.DefaultValueAttribute(ST_BevelPresetType.circle)]
        public ST_BevelPresetType prst;
    }

    /// <summary>
    /// 3-D Shape properties
    /// </summary>
    [Serializable]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = Namespaces.DrawingMLMain)]
    public class CT_Shape3D
    {
        public CT_Shape3D()
        {
            this.z = ((long)(0));
            this.extrusionH = ((long)(0));
            this.contourW = ((long)(0));
            this.prstMaterial = ST_PresetMaterialType.warmMatte;
        }

        public CT_Bevel bevelT;

        public CT_Bevel bevelB;

        public CT_Color extrusionClr;

        public CT_Color contourClr;

        [System.Xml.Serialization.XmlAttributeAttribute()]
        [System.ComponentModel.DefaultValueAttribute(typeof(long), "0")]
        public long z;

        [System.Xml.Serialization.XmlAttributeAttribute()]
        [System.ComponentModel.DefaultValueAttribute(typeof(long), "0")]
        public long extrusionH;

        [System.Xml.Serialization.XmlAttributeAttribute()]
        [System.ComponentModel.DefaultValueAttribute(typeof(long), "0")]
        public long contourW;

        [System.Xml.Serialization.XmlAttributeAttribute()]
        [System.ComponentModel.DefaultValueAttribute(ST_PresetMaterialType.warmMatte)]
        public ST_PresetMaterialType prstMaterial;
    }

    #endregion
}
